﻿using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System;
using PlanificadorDeEventos.Comun;
using PlanificadorDeEventos.Models;

namespace EventPlanner.Models
{
    public class SampleData : DropCreateDatabaseAlways<ModelContext>
    {
        protected override void Seed(ModelContext context)
        {

            var eventos = new List<Evento>
            {
                new Evento { Nombre = "Fiesta 1", Description = "Es la fiesta 1",Date= new DateTime(2012,12,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=15 },
                new Evento { Nombre = "Fiesta 2", Description = "Es la fiesta 2",Date= new DateTime(2012,12,11) , EndRegistrationDate = new DateTime(2013,12,09),CupoMaximo=90 },
                new Evento { Nombre = "Fiesta 3", Description = "Es la fiesta 3",Date= new DateTime(2014,7,11) , EndRegistrationDate = new DateTime(2013,7,09),CupoMaximo=150 },
                new Evento { Nombre = "Fiesta 4", Description = "Es la fiesta 4",Date= new DateTime(2013,8,11) , EndRegistrationDate = new DateTime(2013,9,09),CupoMaximo=40 },
                new Evento { Nombre = "Fiesta 5", Description = "Es la fiesta 5",Date= new DateTime(2013,9,11) , EndRegistrationDate = new DateTime(2013,9,03),CupoMaximo=123 },
                new Evento { Nombre = "Fiesta 6", Description = "Es la fiesta 6",Date= new DateTime(2013,10,11) , EndRegistrationDate = new DateTime(2013,10,09),CupoMaximo=152 },
                new Evento { Nombre = "Fiesta 7", Description = "Es la fiesta 7",Date= new DateTime(2013,12,31) , EndRegistrationDate = new DateTime(2013,12,29),CupoMaximo=25 },
                new Evento { Nombre = "Fiesta 8", Description = "Es la fiesta 8",Date= new DateTime(2013,1,09) , EndRegistrationDate = new DateTime(2013,1,05),CupoMaximo=55 },
                new Evento { Nombre = "Fiesta 9", Description = "Es la fiesta 9",Date= new DateTime(2013,09,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=65 },
                new Evento { Nombre = "Fiesta 10", Description = "Es la fiesta 10",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 },

                new Evento { Nombre = "Fiesta 11", Description = "Es la fiesta 11",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 },
                new Evento { Nombre = "Fiesta 12", Description = "Es la fiesta 12",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 },
                new Evento { Nombre = "Fiesta 13", Description = "Es la fiesta 13",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 },
                new Evento { Nombre = "Fiesta 14", Description = "Es la fiesta 14",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 },
                new Evento { Nombre = "Fiesta 15", Description = "Es la fiesta 15",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 },
                new Evento { Nombre = "Fiesta 16", Description = "Es la fiesta 16",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 },
                new Evento { Nombre = "Fiesta 17", Description = "Es la fiesta 17",Date= new DateTime(2013,2,11) , EndRegistrationDate = new DateTime(2013,5,09),CupoMaximo=25 }
            };

            var Users = new List<User>
            {
                new User {Nombre = "Juan",Email = "juan.perez@hotmail.com",Password = "123456" },
                new User {Nombre = "Jose",Email = "jose.perez@hotmail.com",Password = "123456"  },
                new User {Nombre = "Emilio",Email = "emilio.paredes@hotmail.com",Password = "123456" },
                new User {Nombre = "Pedro",Email = "pedro.gonzales@hotmail.com",Password = "123456" },
                new User {Nombre = "Oscar",Email = "oscar.paez@hotmail.com",Password = "123456" },
                new User {Nombre = "Matias",Email = "matias.villalva@hotmail.com",Password = "123456" },
                new User {Nombre = "Enzo",Email = "enzo.fransescoli@hotmail.com",Password = "123456" },
                new User {Nombre = "Marcelo",Email = "marcelo.gallardo@hotmail.com",Password = "123456" },
                new User {Nombre = "Milton",Email = "milton.heyt@hotmail.com",Password = "123456" },
                new User {Nombre = "Dario",Email = "dario.fernandez@hotmail.com",Password = "123456" },
                new User {Nombre = "Lautaro",Email = "lautaro.pio@hotmail.com",Password = "123456" },

                new User {Nombre = "Jorge",Email = "jorge.re@hotmail.com",Password = "123456" },
                new User {Nombre = "David",Email = "david.ponse@hotmail.com",Password = "123456" },
                new User {Nombre = "Nadia",Email = "nadia.pion@hotmail.com",Password = "123456" },
                new User {Nombre = "Carlos",Email = "carlos@hotmail.com",Password = "123456" },
                new User {Nombre = "Daniel",Email = "dscoco@gmail.com",Password = "123456" },
                new User {Nombre = "Victor",Email = "vzapata@hotmail.com",Password = "123456" },
                new User {Nombre = "Mauro",Email = "maurodins@hotmail.com",Password = "123456" },
                new Administrador {Nombre = "Admin",Email = "admin@eventplanner.com",Password = "admin" }
            };
            Users.ForEach(u=>context.Guests.Add(u));

            new List<EventoUsuarioOrganizado>
            {
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Juan") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Jose") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Emilio") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Pedro") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Oscar") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 5"), Guest= Users.Single(g=>g.Nombre=="Matias") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 5"), Guest= Users.Single(g=>g.Nombre=="Enzo") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 7"), Guest= Users.Single(g=>g.Nombre=="Marcelo") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 8"), Guest= Users.Single(g=>g.Nombre=="Milton") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 8"), Guest= Users.Single(g=>g.Nombre=="Dario") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 6"), Guest= Users.Single(g=>g.Nombre=="Dario") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 9"), Guest= Users.Single(g=>g.Nombre=="Lautaro") },
                new EventoUsuarioOrganizado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 10"), Guest= Users.Single(g=>g.Nombre=="Enzo") },
             
            }.ForEach(a => context.EventoUsuarioOrganizados.Add(a));



            new List<EventoUsuarioRegistrado>
            {
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Juan"),confirmado=true },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Jose"),confirmado=true },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Pedro") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Enzo") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Lautaro") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Matias") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Oscar"),confirmado=true },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 1"), Guest= Users.Single(g=>g.Nombre=="Milton"),confirmado=true },
             

                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Jorge") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="David"),confirmado=true },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Juan") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Nadia") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Carlos") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Daniel") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Victor") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 2"), Guest= Users.Single(g=>g.Nombre=="Milton") },

                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Jorge") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="David") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Juan") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Nadia"),confirmado=true },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Carlos") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Daniel") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Victor") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 3"), Guest= Users.Single(g=>g.Nombre=="Milton") },

                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Mauro") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Jose") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Juan") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Nadia"),confirmado=true },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Carlos") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Daniel") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Victor") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 4"), Guest= Users.Single(g=>g.Nombre=="Enzo") },

                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 5"), Guest= Users.Single(g=>g.Nombre=="Mauro") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 5"), Guest= Users.Single(g=>g.Nombre=="Jose") ,confirmado=true},

                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 6"), Guest= Users.Single(g=>g.Nombre=="Pedro") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 6"), Guest= Users.Single(g=>g.Nombre=="Juan") ,confirmado=true},
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 6"), Guest= Users.Single(g=>g.Nombre=="Mauro") },
                new EventoUsuarioRegistrado { Evento = eventos.Single(e=>e.Nombre=="Fiesta 6"), Guest= Users.Single(g=>g.Nombre=="Enzo") ,confirmado=true},


             

            }.ForEach(a => context.EventoUsuarioRegistrados.Add(a));

          
        }
    }
}